package com.tedu.api.io;

import org.junit.Test;

import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.util.logging.Filter;

/**
 *  listFiles(接口：FileFilter)     重载
 *  作用：按照“指定规则”获取对应文件/文件夹
 *
 *  FileFilter接口---专门给listFiles方法提供：过滤文件夹或者文件【指定规则】
 *  accept()从每个File的文件中判断，拿到【具体逻辑】的文件夹
 *
 * 需求：获取  API 项目下 所有子项【文件和文件夹】，获取src文件
 *     指定规则：验证是s开头就是src
 * //作业2：FileFilter接口按照 匿名内部类 方式 实现，功能如上需求！
 *   接口：  FileFilter  ff=new FileFilter() { accept() }
 */
public class FilterAPI {
    //主方法：./ 路径指定根级
    public static void main(String[] args) throws IOException {
        //1.创建File文件类 : 获取当前 API 文件夹  路径：./API
        //匿名内部类：替换子类继承FileFilter
      /*  FileFilter my=new FileFilter() {
            public boolean accept(File pathname) {
                return pathname.getName().startsWith("s");
            }
        };*/
        //2.获取文件夹下的所有“子项：文件夹下包括所有文件和文件夹”

        //3.打印子项下所有名字     增强for
       /* for(int i=0;i<subs.length;i++){ //i 下标  从0开始
            System.out.println("所有文件和文件夹名："+subs[i].getName());
        }*/
        //增强for for(接收类型 f:){}
        for(File f:new File("."+File.separator+"API").listFiles((pathname)->{return pathname.getName().startsWith("s");})){
            System.out.println("遍历后过滤完成："+f);
        }
    }
}
